package cool.tsy.emos.wx.service;

import cool.tsy.emos.wx.db.pojo.Message;
import cool.tsy.emos.wx.db.pojo.MessageRef;

import java.util.HashMap;
import java.util.List;

/**
 * @author: hongxuan.wang
 * @date: Created in 2021/11/30 23:12
 * @description: 消息模块业务层
 * @mail: 1443424326@qq.com
 */
public interface MessageService {

    /**
     * <h2>向 message 集合插入数据</h2>
     */
    String insertMessage(Message message);

    /**
     * <h2>向 message_ref 集合插入数据</h2>
     */
    String insertRef(MessageRef messageRef);

    /**
     * <h2>查询未读的消息数</h2>
     */
    long searchUnreadCount(int userId);

    /**
     * <h2>查询接收到的最新消息数量</h2>
     */
    long searchLastCount(int userId);

    /**
     * <h2>查询分页数据</h2>
     */
    List<HashMap> searchMessageByPage(int userId, long start, int length);

    /**
     * <h2>根据 id 查询消息</h2>
     */
    HashMap searchMessageById(String id);

    /**
     * <h2>未读 -> 已读</h2>
     */
    long updateUnreadMessage(String id);

    /**
     * <h2>根据 id 删除 MessageRef</h2>
     */
    long deleteMessageRefById(String id);

    /**
     * <h2>删除某个用户的所有消息</h2>
     */
    long deleteUserMessageRef(int userId);
}
